In a communications network, such as the Internet, for example, there is often a need for a network device, such as a server, to be able to remotely access a remote device on the network, such as a personal computer (PC) located in a person's home. Typically, a PC in the home resides behind a router that implements a configuration known as Network Address Translation (NAT). The NAT inherently prevents a remote server from accessing the PC unless a NAT mapping is established in the router that allows the server to access the PC.
The NAT mapping can be established by a user by manually configuring the NAT port address translation table or by manually configuring the router to place the PC or other device in the “demilitarized zone” (DMZ) of the router. However, the techniques that must be used to configure the router vary among different types of routers and are beyond the capabilities of many users.
When a NAT mapping is established to provide access to the device behind the router, the device has to periodically send “keep-alive” messages to the server to maintain the NAT mapping, i.e., to keep the mapping alive. The server responds to these messages. During the message exchange, the router will maintain a NAT port address translation entry in the NAT mapping that allows the server to access the device through the router. The exchanges must be sent frequently enough to keep the NAT entry alive. If the exchanges are not sent frequently enough, the NAT port address translation entry timer will timeout, and the server will not be able to access the device. This problem is compounded by the fact that different routers may have different timeout values for NAT port address translation entries.
The Universal Plug and Play (UPnP) protocol provides a technique by which a software application program can configure a router on behalf of a user. However, many routers do not support UPnP or do not have UPnP enabled by default.
A need exists for a way to allow a network device, such as a server, to remotely access a remote device behind a router or gateway, such as a PC, without requiring the consumption or a large amount of network bandwidth.